<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据字典</title>
		<link href="../../../component/pear/css/pear.css" rel="stylesheet" />
	</head>
	<body class="pear-container">
		<div class="layui-row layui-col-space10">
			<div class="layui-col-md12">
				<div class="layui-card">
					<div class="layui-card-body">
						<form class="layui-form" action="">
							<div class="layui-form-item">
								<div class="layui-form-item layui-inline">
									<label class="layui-form-label">字典名称</label>
									<div class="layui-input-inline">
										<input type="text" name="name" placeholder="" class="layui-input">
									</div>
								</div>
								<div class="layui-form-item layui-inline">
									<label class="layui-form-label">字典类型编码</label>
									<div class="layui-input-inline">
										<input type="text" name="typeCode" placeholder="" class="layui-input">
									</div>
								</div>

								<div class="layui-form-item layui-inline">
									<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="dict-type-query">
										<i class="layui-icon layui-icon-search"></i>查询
									</button>
									<button type="reset" class="pear-btn pear-btn-md">
										<i class="layui-icon layui-icon-refresh"></i>重置
									</button>
								</div>


							</div>
						</form>
					</div>
				</div>
			</div>
			<div class="layui-col-md6">
				<div class="layui-card">
					<div class="layui-card-body">
						<table id="dict-type-table" lay-filter="dict-type-table"></table>
					</div>
				</div>
			</div>
			<div class="layui-col-md6">
				<div class="layui-card">
					<div class="layui-card-body">
						<svg class="empty" style="margin-top: 50px;margin-left: 220px;margin-bottom: 80px;" width="184" height="152"
						 viewBox="0 0 184 152" xmlns="http://www.w3.org/2000/svg">
							<g fill="none" fillRule="evenodd">
								<g transform="translate(24 31.67)">
									<ellipse fillOpacity=".8" fill="#F5F5F7" cx="67.797" cy="106.89" rx="67.797" ry="12.668"></ellipse>
									<path d="M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"
									 fill="#AEB8C2"></path>
									<path d="M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z"
									 fill="url(#linearGradient-1)" transform="translate(13.56)"></path>
									<path d="M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z" fill="#F5F5F7"></path>
									<path d="M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"
									 fill="#DCE0E6"></path>
								</g>
								<path d="M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"
								 fill="#DCE0E6"></path>
								<g transform="translate(149.65 15.383)" fill="#FFF">
									<ellipse cx="20.654" cy="3.167" rx="2.849" ry="2.815"></ellipse>
									<path d="M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"></path>
								</g>
							</g>
						</svg>
						<table id="dict-data-table" lay-filter="dict-data-table"></table>
					</div>
				</div>
			</div>
		</div>

	</body>
	<script type="text/html" id="dict-type-toolbar">
		<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
	        <i class="layui-icon layui-icon-add-1"></i>
	        新增
	    </button>
	    <button class="pear-btn pear-btn-danger pear-btn-md layui-hide" lay-event="batchDelete">
	        <i class="layui-icon layui-icon-delete"></i>
	        删除
	    </button>
	</script>

	<script type="text/html" id="dict-type-bar">
		<button class="pear-btn pear-btn-warming pear-btn-xs" lay-event="detail" title="展开">
			<i class="layui-icon layui-icon-transfer"></i>
		</button>
		<button class="pear-btn pear-btn-primary pear-btn-xs" lay-event="edit">
	        <i class="layui-icon layui-icon-edit"></i>
	    </button>
	    <button class="pear-btn pear-btn-danger pear-btn-xs" lay-event="remove">
	        <i class="layui-icon layui-icon-delete"></i>
	    </button>
	</script>

	<script type="text/html" id="dict-data-toolbar">
		<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
	        <i class="layui-icon layui-icon-add-1"></i>
	        新增
	    </button>
	    <button class="pear-btn pear-btn-danger pear-btn-md layui-hide" lay-event="batchDelete">
	        <i class="layui-icon layui-icon-delete"></i>
	        删除
	    </button>
	</script>

	<script type="text/html" id="dict-data-bar">
		<button class="pear-btn pear-btn-primary pear-btn-xs" lay-event="defaultSelected" title="设置为默认项"><i class="layui-icon layui-icon-set-sm"></i></button>
		<button class="pear-btn pear-btn-primary pear-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>
	    <button class="pear-btn pear-btn-danger pear-btn-xs" lay-event="delete"><i class="layui-icon layui-icon-delete"></i></button>
	</script>

	<script src="../../../component/layui/layui.js"></script>
	<script src="../../../component/pear/pear.js"></script>
	<script>
		layui.use(['table', 'form', 'jquery', 'dict'], function() {
			let table = layui.table;
			let form = layui.form;
			let $ = layui.jquery;
			let dict = layui.dict;

			let dictTypeCode;

			let cols = [[
				{ type: 'checkbox', hide: true },
				{ title: '字典名称', field: 'name', align: 'center', width: 120 },
				{ title: '字典类型编码', field: 'typeCode' },
				{ title: '备注', field: 'remark', align: 'center', width: 120 },
				{ field: 'createByName', title: '创建者', width: 120, hide: true },
				{ field: 'createTime', title: '创建时间', width: 160, hide: true, templet: function (d) {
					return layui.util.toDateString(d.createTime, "yyyy-MM-dd HH:mm:ss");
				}},
				{ field: 'updateByName', title: '更新者', width: 120, hide: true },
				{ field: 'updateTime', title: '更新时间', width: 160, hide: true, templet: function (d) {
					return layui.util.toDateString(d.updateTime, "yyyy-MM-dd HH:mm:ss");
				}},
				{ title: '操作', toolbar: '#dict-type-bar', align: 'center', width: 160, fixed: 'right' }
			]];

			table.render({
				elem: '#dict-type-table',
				url: "/vtl-dict-type/page",
				request: {
					pageName: 'current', // 页码的参数名称，默认：page
					limitName: 'size' // 每页数据条数的参数名，默认：limit
				},
				parseData: function(res) {
					return {
						"code": 0,
						"msg": 'SUCCESS',
						"count": res.total,
						"data": res.records
					};
				},
				page: true,
				cols: cols,
				skin: 'grid',
				height: 'full-148',
				toolbar: '#dict-type-toolbar',
				defaultToolbar: [{ title: '刷新', layEvent: 'refresh', icon: 'layui-icon-refresh' }, 'filter', 'print', 'exports']
			});

			table.on('tool(dict-type-table)', function(obj) {
				let row = obj.data;
				if (obj.event === 'remove') {
					window.deleteType(obj);
				} else if (obj.event === 'edit') {
					window.editType(row.id);
				} else if (obj.event === 'detail') {
					window.renderData(row.typeCode);
				}
			});

			table.on('toolbar(dict-type-table)', function(obj) {
				if (obj.event === 'add') {
					window.editType();
				} else if (obj.event === 'refresh') {
					window.refreshType(true);
				} else if (obj.event === 'batchDelete') {
					window.batchDeleteType();
				}
			});

			form.on('submit(dict-type-query)', function(data) {
				window.refreshType(data.field);
				return false;
			});

			window.editType = function(id) {
				let url = 'typeEdit.html' + ($.vtl.isBlank(id) ? '' : ('?id=' + id));
				$.vtl.openLayer(url, { title: '编辑' });
			}

			window.deleteType = function(obj) {
				layer.confirm('确定删除？', { icon: 3, title: '提示' }, function(index) {
					layer.close(index);
					$.delete('/vtl-dict-type/' + obj.data.id, function(result) {
						if (result.code == 200) {
							obj.del();
						}
					});
				});
			}

			window.refreshType = function(field = {}, deep = false) {
				$.vtl.tableReloadData("dict-type-table", field, deep);
			}


			window.renderData = function(typeCode) {
				dictTypeCode = typeCode;
				$(".empty").hide();

				let dataCols = [[
					{ type: 'checkbox', hide: true },
					{ field: 'typeCode', title: '字典类型编码', width: 180 },
					{ field: 'label', title: '名称', align: 'right', width: 180 },
					{ field: 'dataCode', title: '编码', width: 120 },
					{ field: 'disabled', title: '状态', width: 120, event: 'disabled', templet: function(d) {
                        return dict.labelButton('vtl_disabled', d.disabled, true);
                    } },
					{ field: 'defaultSelected', title: '默认', width: 70, templet: function (d) {
						return d.defaultSelected ? '是' : '否';
					}},
					{ field: 'seq', title: '排序', width: 70 },
					{ field: 'remark', title: '备注' },
					{ field: 'createByName', title: '创建者', width: 120, hide: true },
					{ field: 'createTime', title: '创建时间', width: 160, hide: true, templet: function (d) {
						return layui.util.toDateString(d.createTime, "yyyy-MM-dd HH:mm:ss");
					}},
					{ field: 'updateByName', title: '更新者', width: 120, hide: true },
					{ field: 'updateTime', title: '更新时间', width: 160, hide: true, templet: function (d) {
						return layui.util.toDateString(d.updateTime, "yyyy-MM-dd HH:mm:ss");
					}},
					{ title: '操作', toolbar: '#dict-data-bar', align: 'center', width: 150, fixed: 'right' }
				]];

				table.render({
					elem: '#dict-data-table',
					url: "/vtl-dict-data/page?typeCode=" + typeCode,
					request: {
						pageName: 'current', // 页码的参数名称，默认：page
						limitName: 'size' // 每页数据条数的参数名，默认：limit
					},
					parseData: function(res) {
						return {
							"code": 0,
							"msg": 'SUCCESS',
							"count": res.total,
							"data": res.records
						};
					},
					page: true,
					height: 'full-148',
					cols: dataCols,
					skin: 'grid',
					toolbar: '#dict-data-toolbar',
					defaultToolbar: [{ title: '刷新', layEvent: 'refresh', icon: 'layui-icon-refresh' }, 'filter', 'print', 'exports']
				});
			}


			window.editData = function(id) {
				let url = 'dataEdit.html?typeCode=' + dictTypeCode + ($.vtl.isBlank(id) ? '' : ('&id=' + id));
				$.vtl.openLayer(url, { title: '编辑' });
			}

			window.deleteData = function(obj) {
				layer.confirm('确定删除？', { icon: 3, title: '提示' }, function(index) {
					layer.close(index);
					$.delete('/vtl-dict-data/' + obj.data.id, function(result) {
						if (result.code == 200) {
							obj.del();
						}
					});
				});
			}

			window.setDisabledValue = function(obj) {
				 layer.confirm('确定切换【启用/停用】状态？', { icon: 3, title: '提示' }, function(index) {
					layer.close(index);
					$.post('/vtl-dict-data/setDisabledValue/' + obj.data.id, { disabled: !obj.data.disabled }, function(result) {
						if (result.code == 200) {
							dict.refresh();
						   	window.refreshData(true);
						}
					});
				});
			}

			table.on('tool(dict-data-table)', function(obj) {
				let row = obj.data;
				if (obj.event === 'delete') {
					window.deleteData(obj);
				} else if (obj.event === 'edit') {
					window.editData(row.id);
				} else if(obj.event == 'disabled') {
					window.setDisabledValue(obj);
				} else if(obj.event == 'defaultSelected') {
					window.setDefaultSelected(row.id);
				}
			});

			table.on('toolbar(dict-data-table)', function(obj) {
				if (obj.event === 'add') {
					window.editData();
				} else if (obj.event === 'refresh') {
					window.refreshData(true);
				}
			});

			window.refreshData = function(field = {}, deep = false) {
				$.vtl.tableReloadData('dict-data-table', field, deep);
			}

			window.setDefaultSelected = function(id) {
				layer.confirm('确定设置为默认项？', { icon: 3, title: '提示' }, function(index) {
					layer.close(index);
					$.post('/vtl-dict-data/setDefaultSelected/' + id, function(result) {
						if (result.code == 200) {
							dict.refresh();
						   	window.refreshData(true);
						}
					});
				});
			}
		})
	</script>
</html>
